package com.magic.resume.utils;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.read.listener.PageReadListener;
import com.magic.resume.model.Company;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import javax.annotation.PreDestroy;
import java.io.File;
import java.util.LinkedList;
import java.util.List;

/**
 * 对excel的支持
 *
 * @author liu
 * @since 2024-04-17 19:39
 */
@Component
@Slf4j
public class ExcelUtil {

//    文件绝对地址
    String fileName = "company.xlsx";
    public static List<Company> companyList = new LinkedList<>();


    /**
     * 读取excel
     * @return List<String> 公司列表
     */
    public List<String> read() {
        log.info("开始执行读取");
        List<String> list = new LinkedList<>();
        // 这里默认读取第一个sheet
        EasyExcel.read(fileName, Company.class, new PageReadListener<Company>(dataList -> {
            for (Company company : dataList) {
//                将文件中的公司名称解析到公司列表中
                list.add(company.getName());
                companyList.add(company);
            }
        })).sheet().doRead();
        log.info("读取完成");
        return list;
    }


    /**
     * 优雅停机，将本次运行结果写入excel
     */
    @PreDestroy
    public void write() {
        log.info("开始执行写入");
        EasyExcel.write(fileName, Company.class).sheet("模板").doWrite(
                companyList
        );
        log.info("优雅停机写入完成");
    }

}
